#ifndef TYPE_ANNOUNCE_H_
#define TYPE_ANNOUNCE_H_

#include "bloom_filter.h"


// Entries type declaration for the Type Announce Packet
    typedef struct _ta_neighbor_entry_t
    { 
        u_int32_t addr; 
        bloom_filter_t ABF; 
    } ta_neighbor_entry_t; 
        
    typedef struct _ta_group_entry_t 
    { 
        u_int32_t multicast_group_addr; 
        u_int8_t neighbors_count; 
    } ta_group_entry_t; 

    typedef struct _ta_header_t 
    { 
        u_int32_t seq_no; 
        u_int8_t multicast_group_count; 
    } ta_header_t; 


// Type Announce Packet manipulation routines
    int GenerateTypeAnnouncePacket(char* buf);
    void ProcessTypeAnnouncePacket(char* buf, u_int32_t srcAddr);
void DumpTypeAnnouncePacket(char * packet, int fd);


//int ta_generate_packet(char * buf, int size); 

#endif /*TYPE_ANNOUNCE_H_*/
